#ifndef _KEYBOARD_H_
#define _KEYBOARD_H_

/**
Keyboard holds the current state of keyboard
*/
class Keyboard
{
public:
	static void Reset(void);
	static bool KeyPressed(unsigned int number);
	static bool KeyPreviouslyPressed(unsigned int number);
	static bool NewKeyPressed(unsigned int number);
	static void SetKeyPressed(unsigned int number);
	static void SetKeyReleased(unsigned int number);	
	static bool KeySwitch(unsigned int number);
	static void Update(void);

private:
	static bool keyCurrent[256];
	static bool keyPrevious[256];
	static bool keySwitch[256];
	static bool keyWasReleased[256];	
};

#endif